package com.example.myweather.Server

import okhttp3.OkHttpClient
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import java.util.concurrent.TimeUnit
/*
 * ApiClient 类用于配置和创建 Retrofit 实例，以便与 API 服务器进行交互。
 * 该类负责设置 HTTP 客户端、超时时间以及 JSON 转换器等配置。
 */
class ApiClient {
    // Retrofit 实例，用于执行网络请求
    private lateinit var retrofit: Retrofit
    // OkHttpClient 实例，用于配置网络请求的客户端
    private var client=OkHttpClient.Builder()
        .connectTimeout(60,TimeUnit.SECONDS)// 设置连接超时时间为 60 秒
        .readTimeout(60,TimeUnit.SECONDS)   // 设置读取超时时间为 60 秒
        .writeTimeout(60,TimeUnit.SECONDS)  // 设置写入超时时间为 60 秒
        .build()
    /*
     * 创建并返回 Retrofit 实例的方法。
     * 该方法配置基础 URL、HTTP 客户端和 JSON 转换器。
     *
     * 返回：
     * - Retrofit 实例，用于执行 API 请求
     */
    fun getClient():Retrofit{
        retrofit=Retrofit.Builder()
            .baseUrl("https://api.openweathermap.org")         // 设置基础 URL
            .client(client)                                    // 设置 HTTP 客户端
            .addConverterFactory(GsonConverterFactory.create())// 添加 JSON 转换器
            .build()
        return retrofit
    }

}